[IA64] Use machine vector for global tlb purge
authorawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Fri, 15 Dec 2006 17:59:33 +0000 (10:59 -0700)
committerawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Fri, 15 Dec 2006 17:59:33 +0000 (10:59 -0700)
Switch to using the platform vector for global tlb purges. In fact
nothing should be calling ia64_global_tlb_purge() directly.

Signed-off-by: Jes Sorensen <jes@sgi.com>
xen/arch/ia64/linux-xen/sn/kernel/sn2_smp.c
xen/arch/ia64/xen/vhpt.c

index 71bef9e9abcefeeebe4d7f3edc489074ee0b7ec0..ec7c45ef1e3c69fb57c4c9927d15f04bed1ab281 100644 (file)
@@ -173,7 +173,7 @@ sn2_global_tlb_purge(unsigned long start,
        int mymm = (mm == current->active_mm && mm == current->mm);
 #else
        // struct mm_struct *mm;
-       int mymm = 1;
+       int mymm = 0;
 #endif
        int use_cpu_ptcga;
        volatile unsigned long *ptc0, *ptc1;
index 05382370cc6cc45fa4d90d9d658476bbc7dbd78b..0ba1f93a9bf5f8b8d42cb38ea0657609ac34fa12 100644 (file)
@@ -21,9 +21,6 @@
 #include <asm/vcpumask.h>
 #include <asm/vmmu.h>
 
-/* Defined in tlb.c  */
-extern void ia64_global_tlb_purge(u64 start, u64 end, u64 nbits);
-
 extern long running_on_sim;
 
 DEFINE_PER_CPU (unsigned long, vhpt_paddr);
@@ -364,7 +361,7 @@ void domain_flush_vtlb_range (struct domain *d, u64 vadr, u64 addr_range)
        // ptc.ga has release semantics.
 
        /* ptc.ga  */
-       ia64_global_tlb_purge(vadr,vadr+addr_range,PAGE_SHIFT);
+       platform_global_tlb_purge(vadr, vadr + addr_range, PAGE_SHIFT);
        perfc_incrc(domain_flush_vtlb_range);
 }
 
@@ -442,7 +439,8 @@ __domain_flush_vtlb_track_entry(struct domain* d,
                perfc_incrc(domain_flush_vtlb_local);
        } else {
                /* ptc.ga has release semantics. */
-               ia64_global_tlb_purge(vaddr, vaddr + PAGE_SIZE, PAGE_SHIFT);
+               platform_global_tlb_purge(vaddr, vaddr + PAGE_SIZE,
+                                         PAGE_SHIFT);
                perfc_incrc(domain_flush_vtlb_global);
        }